Conventional assembly machines are structured in a centralized way to receive an input, follow a specific algorithm, and produce an output. Additionally, as each piece of the assembly is unaware of the capabilities of other pieces of the assembly, these assembly machines are not able to determine a more efficient way to process an input without modification.